import { EventType } from "../types/L_Type";
import UnitX from "../entity/UnitX";
import DotEvent from "./eventdef/DotEvent";
import EventX from "./eventdef/EventX";


/**防循环依赖！！ 所有事件的管理池  方便根据各种情况找到单位/X参数相关的事件集合  */
export default class EventGMap{
 
//   private static EventGlobalPool:Map<EventType,Map<number,EventX>>=new Map()
 
 
//   public static addEventGMap(event:EventX){
//     let typeEventMap=this.EventGlobalPool.get(event.eventType)
//     if(typeEventMap==undefined){
//         typeEventMap=new Map()
//         this.EventGlobalPool.set(event.eventType,typeEventMap)
//     }
//     typeEventMap.set(event.eventId,event)    
//     //console.log("EventGMap.add()",this.EventGlobalPool)
//   }

// public static releaseEvent(event:EventX){
//     let typeEventMap=this.EventGlobalPool.get(event.eventType)
//     if(typeEventMap==undefined){
//        return
//     }
//     typeEventMap.delete(event.eventId)    
//    // console.log("EventGMap.releaseEvent()",this.EventGlobalPool)
// }  


// public static getDotEventsWithAunitX(aux:UnitX):DotEvent[]{
//     return this.getDotEventsWithUnitXAB(aux,undefined)
// }

// public static getDotEventsWithBunitX(bux:UnitX):DotEvent[]{
//     return this.getDotEventsWithUnitXAB(undefined,bux)
// }


//   /**参数2选1 获取与释放者  或者受害者关联的event集合 */
//   private static getDotEventsWithUnitXAB(aux?:UnitX,bux?:UnitX):DotEvent[]{
//     let rs:DotEvent[]=[]
//     let relMap=this.EventGlobalPool.get('DOT_DMG') || new Map()
//    // console.log("1----------->",relMap)
//     if(aux){
//         for(let [k, e] of relMap){
//             //console.log("2----------->",e)
//             if((e as DotEvent).dtl.aux.unitXId==aux.unitXId){
//                 rs.push(e)
//             }
//         }
//     }    
//     if(bux){
//         for(let [k, e] of relMap){
//             if((e as DotEvent).dtl.bux.unitXId==bux.unitXId){
//                 rs.push(e)
//             }
//         }
//     }    
//     return rs
//   }


  
}  